Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.09.2014, 10:56
Аватар для psfdek
Профессор
Отправить личное сообщение для psfdek Посмотреть профиль Найти все сообщения от psfdek
 
Регистрация: 14.02.2014
Сообщений: 157

Выполнение функции по таймауту
function getXmlHttpRequest(){
	if(window.XMLHttpRequest)
		return new XMLHttpRequest();
	else
		return null;
}
function ajaxChartUpdater(DataCh){
	var link = 'rand.php'; //ссылка на исполняемый файл php
	var sVl ='?req=1';
	getAjaxLiveChart(sVl,link,DataCh);
}

function getAjaxLiveChart(reqSt1,link,DataCh){
	var reqString1 = getXmlHttpRequest();
	reqString1.onreadystatechange = function(){
		if(reqString1.readyState != 4) return;{
			var DataChNew = reqString1.responseText;
			
			if(DataChNew!=DataCh){
				if(DataCh!=undefined){
					alert(DataCh);
				}
				alert(DataChNew);
			}
			
			setTimeout(ajaxChartUpdater(), 10000);
		}
	};

	reqString1.open('GET', '<?=baseurl?>'+link+'?'+reqSt1, true);
	reqString1.send(null);
}

Как сделать так что бы в setTimeout(ajaxChartUpdater(), 10000); можно было передавать переменную?

setTimeout(ajaxChartUpdater(DataChNew), 10000); - так переменная передается но интервал не работает.
setTimeout('ajaxChartUpdater(DataChNew)', 10000); - так не работает
Ответить с цитированием
  #2 (permalink)  
Старый 19.09.2014, 11:13
Аватар для psfdek
Профессор
Отправить личное сообщение для psfdek Посмотреть профиль Найти все сообщения от psfdek
 
Регистрация: 14.02.2014
Сообщений: 157

function ajaxChartUpdater(DataCh){
	var link = '/query/test2.php'; //ссылка на исполняемый файл php
	var sVl ='?req=1';
	getAjaxLiveChart(sVl,link,DataCh);
}

function getAjaxLiveChart(reqSt1,link,DataCh){
	var reqString1 = getXmlHttpRequest();
	reqString1.onreadystatechange = function(){
		if(reqString1.readyState != 4) return;{
			var DataChNew = reqString1.responseText;
			
			if(DataChNew!=DataCh){
				if(DataCh!=undefined){
					alert(DataCh);
				}
				alert(DataChNew);
			}
			
			setTimeout('ajaxChartUpdater(DataChTi)', 10000);
			DataChTi=DataChNew;

		}
	};

	reqString1.open('GET', '<?=baseurl?>'+link+'?'+reqSt1, true);
	reqString1.send(null);
}

вот так работает, если после сет таймаута присвоить переменную со значению той которую в сет тайм таймауте указываешь.
Ответить с цитированием
  #3 (permalink)  
Старый 19.09.2014, 13:04
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,277

Сообщение от psfdek
Как сделать так что бы в setTimeout(ajaxChartUpdater(), 10000); можно было передавать переменную?
Как вариант...

var tmp=0;
setTimeout(function (){
	tmp=10;
	test(tmp);
},1000);
alert(tmp);
function test(N) {
	alert(N);
};
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задержать выполнение функции cevut Общие вопросы Javascript 2 08.03.2014 20:11
jQuery выполнение функции при условии. gameviktor Angular.js 1 28.01.2014 18:13
onclick прервать выполнение функции wgt Events/DOM/Window 4 30.04.2013 20:52
Прерывается выполнение функции при смене аргумента mikser763 Общие вопросы Javascript 1 11.10.2010 16:36
Паралельное выполнение одной и той-же функции Сеня AJAX и COMET 3 24.01.2009 20:59